Data for Stock Assessment

Fundamentals of Fish Stock Assessment

Masumbuko Semba

Nelson Mandela African Institution of Science and Technology

Mathew Silas

Deep Sea Fishing Authority

Rushingisha George

Tanzania Fisheries Research Institute

2025-12-05

Data: The Foundation of Assessment

“In God we trust. All others must bring data.” - W. Edwards Deming

Code
lw = readxl::read_excel('../data_shared/ProjKalluun_master_data_entry.xlsx', sheet = 'Section 3', skip= 4) |> 
    janitor::clean_names() |> 
    filter(!is.na(landing_site))

lw = lw |> 
 mutate(
    year = year(date_dd_mm_yy),
    month = month(date_dd_mm_yy, label = TRUE),
    day = day(date_dd_mm_yy), 
    .after = date_dd_mm_yy
 ) |> 
    mutate(
    weight_kg = as.numeric(weight_kg),
    length_cm = as.numeric(length_cm)
    )

# lw |> write_csv('../data_shared/lw2.csv')

The Concept

What Data Do We Need?

We generally categorize fisheries data into four main types:

  1. Catch Data: How much is being removed?
  2. Effort Data: How hard are we fishing?
  3. Biological Data: What are the characteristics of the fish?
  4. Abundance Indices: How is the population size changing?
  5. Environmental Data: What external factors influence the fish?

1. Catch Data

Total removals from the stock over time (in weight or number).

  • Essential for almost every assessment model.
  • Sources:
    • Commercial logbooks
    • Port sampling / observers
    • Artisanal landing site surveys
    • Recreational surveys
Code
lw |> 
    mutate(
        season = month(date_dd_mm_yy), 
        season = if_else(season > 5 & season < 10, 'SEM', 'NEM')) |> 
    webr::PieDonut(aes(pie = season, donut = region), r0 = .5, labelposition=1)

Example: Annual Catch

A time series of catch is the most fundamental piece of information.

Catch Data by country in the Western Indian Ocean (1950-2018)
Total Annual Landings (MT)
year Kenya Tanzania Zanzibar Seychelles Mozambique Somalia Mauritius Mayotte Madagascar
1,950 18,000 32,600 0 1,000 8,300 6,000 2,000 0 17,900
1,951 18,000 32,600 0 1,000 8,700 6,000 2,000 0 18,000
1,952 18,000 35,600 0 1,000 8,500 7,000 2,000 0 18,000
1,953 18,700 60,000 0 1,500 8,300 7,400 2,000 0 21,100
1,954 17,600 59,900 0 1,500 8,200 5,300 2,000 0 21,600
1,955 30,100 62,500 0 1,500 10,300 9,500 2,000 0 23,600
1,956 32,600 65,100 0 1,500 10,300 10,000 2,200 0 23,600
1,957 25,500 65,600 0 1,800 12,500 9,000 2,200 0 26,000
1,958 22,000 65,600 0 1,800 13,100 8,000 2,200 0 26,500
1,959 22,600 70,500 0 1,800 13,700 5,000 2,500 100 28,000
1,960 12,600 70,800 0 1,800 13,400 4,500 2,500 100 29,500
1,961 13,500 73,100 0 2,000 12,800 4,500 2,500 100 30,500
1,962 18,400 73,300 0 2,000 12,800 4,500 2,800 100 32,000
1,963 20,100 79,000 0 2,000 13,500 4,500 2,800 100 37,400
1,964 20,700 103,000 0 2,000 13,900 4,500 2,800 100 46,000
1,965 23,400 104,700 0 2,000 16,200 4,600 3,000 200 45,300
1,966 27,900 104,200 0 2,500 17,300 4,600 3,000 200 56,000
1,967 27,300 131,000 0 2,500 17,000 4,700 3,000 200 59,100
1,968 28,200 155,600 0 2,500 17,700 5,000 3,300 200 64,700
1,969 32,000 154,200 0 2,500 19,000 5,000 4,000 200 50,063
1,970 33,700 191,220 0 3,000 20,100 5,600 5,400 300 53,901
1,971 28,300 183,601 0 3,000 22,900 5,700 5,200 300 56,745
1,972 30,000 158,026 0 3,000 22,900 5,800 6,600 300 57,733
1,973 29,000 164,192 0 3,000 26,300 5,900 6,400 300 65,916
1,974 28,581 174,826 0 3,500 28,660 5,980 7,679 300 71,399
1,975 27,373 212,076 0 3,950 25,490 10,350 7,038 400 61,983
1,976 41,164 233,744 0 4,010 27,900 8,268 6,660 500 60,939
1,977 43,009 272,541 0 4,600 26,950 9,830 7,667 500 62,462
1,978 46,425 213,484 0 5,400 25,940 8,384 7,108 600 61,076
1,979 51,735 182,832 0 4,957 28,630 10,984 6,525 600 60,498
1,980 47,875 231,192 0 4,676 33,850 14,330 6,348 742 57,408
1,981 57,900 233,897 0 5,221 40,630 9,823 7,132 516 57,969
1,982 81,718 230,873 0 4,045 38,180 9,030 9,780 420 59,478
1,983 98,357 242,766 0 3,938 40,940 11,495 9,434 480 63,476
1,984 91,127 280,894 0 3,734 34,947 19,939 10,346 550 67,428
1,985 106,251 304,766 0 4,118 36,326 16,767 12,176 780 69,025
1,986 120,244 313,968 0 4,542 42,678 18,655 12,849 800 84,247
1,987 131,692 346,463 0 3,900 39,788 19,996 17,279 1,200 92,400
1,988 138,391 397,528 0 4,343 35,433 20,327 17,117 1,000 101,109
1,989 146,193 380,683 0 4,412 30,167 21,546 16,898 1,100 97,809
1,990 201,542 417,018 0 5,437 31,182 22,695 14,098 1,600 103,600
1,991 198,479 329,380 0 8,150 29,336 23,800 18,576 1,400 99,183
1,992 162,967 333,783 0 6,663 24,390 25,750 18,861 1,100 104,831
1,993 182,909 335,050 0 5,178 23,315 27,750 20,579 500 114,760
1,994 203,362 292,021 0 4,469 23,662 29,850 18,145 600 117,320
1,995 193,283 363,355 0 4,008 27,375 32,400 16,395 1,033 116,627
1,996 181,463 327,516 0 4,707 38,226 30,200 11,869 1,553 115,431
1,997 161,589 360,753 0 14,043 41,709 28,000 14,025 2,867 117,347
1,998 173,155 352,155 0 23,886 35,453 25,800 12,093 3,018 115,205
1,999 205,927 314,750 0 34,223 38,026 28,650 12,205 3,471 118,438
2,000 215,799 327,264 17,922 32,778 41,530 24,150 9,615 3,048 120,967
2,001 164,760 341,988 20,541 53,591 36,556 31,900 10,986 9,612 124,415
2,002 145,164 329,057 20,341 63,383 38,185 29,000 10,706 4,756 130,125
2,003 120,532 354,690 20,859 86,020 87,904 30,000 10,968 3,464 130,670
2,004 127,297 364,245 23,488 100,671 90,588 30,000 9,971 2,306 135,916
2,005 147,920 375,842 23,210 108,680 83,996 25,000 9,855 2,196 133,648
2,006 159,266 336,364 24,418 92,739 93,882 30,000 8,681 4,961 134,693
2,007 132,282 426,666 23,580 65,514 92,623 30,000 8,325 11,082 148,578
2,008 136,109 326,286 24,514 69,199 121,655 30,000 6,871 12,088 121,264
2,009 134,157 334,954 25,394 81,114 150,780 30,000 7,856 14,539 132,103
2,010 140,607 351,391 25,690 87,111 162,555 30,000 7,366 20,330 129,638
2,011 181,450 348,908 28,757 75,481 195,280 30,000 7,306 28,602 127,070
2,012 158,805 379,425 29,810 68,687 210,696 30,000 6,352 31,034 118,075
2,013 163,207 380,260 30,712 74,127 222,101 30,000 7,913 27,929 104,597
2,014 169,161 342,012 32,872 75,116 253,023 30,000 14,655 1,962 95,821
2,015 165,367 375,450 34,103 104,984 286,717 30,000 15,796 1,136 114,751
2,016 142,133 371,153 33,893 127,128 299,753 30,000 18,211 1,538 142,333
2,017 121,836 389,026 35,057 142,765 329,561 30,000 24,987 704 161,606
2,018 123,000 375,755 35,440 145,614 328,276 30,000 28,314 1,117 129,568
Code
annual_landings = rfisheries::of_landings()


wio_countries = tibble(code = c("KEN", "TZA", "EAZ", "SYC", "ZAF", "MOZ", 
                                "SOM", "MUS", "MYT", "MDG"),
                       name = c("Kenya", "Tanzania", "Zanzibar", "Seychelles",
                                "South Africa",   "Mozambique", "Somalia", 
                                "Mauritius", "Mayotte", "Madagascar")
                    )


landings_wio_list = list()

for (catches in 1:nrow(wio_countries)){
  landings_wio_list[[catches]] = rfisheries::of_landings(country = wio_countries$code[catches]) %>% 
    rename(code = country) %>% 
    mutate(name = wio_countries$name[catches])
}

landings_wio_list_df = do.call(rbind, landings_wio_list)
landings_wio_list_df |> write_csv('landings_wio.csv')

catch_data = read_csv('presentations/landings_wio.csv') 

catch_data |>
    filter(!code %in% c('ZAF')) |>
    tidyplot(x = year, y = catch, color = name) |> 
    add_areastack_absolute() |> 
    adjust_colors(new_colors = colors_discrete_friendly_long) |> 
    adjust_size(width = 3.0, height = 3.5, unit = 'in') |> 
    adjust_legend_title(title = "Country")  |> 
    adjust_legend_position(position = c(.25,.8))|>
    adjust_font(fontsize = 11) |> 
    adjust_y_axis(title = "Quantity Landed (MT)", breaks = scales::pretty_breaks(n = 6), labels = scales::comma) |> 
    adjust_x_axis(breaks = seq(1950, 2020, by = 10)) |>
    remove_x_axis_title() |> 
    save_plot('presentations/plots/annual_catch_wio.svg')

2. Effort Data

  • Measure of the resources used to catch fish.
  • Crucial for understanding changes in fishing pressure.
  • Examples:
    • Number of fishing days (days-at-sea)
    • Number of vessels
    • Number of hooks, nets, or traps
    • Engine horsepower

2. Effort Data…

Spatial variation of fishing effort for longline and purse seine fisheries {.scrollable}

3. Biological Data

  • Describes the life history of the stock.
  • Collected through biological sampling programs.
  • Key parameters:
    • Length & Weight: For growth models (L-W relationship).
    • Age: From otoliths, spines, or scales.
    • Sex & Maturity: To determine size/age at maturity.
    • Fecundity: Reproductive potential.

Example: Length-Frequency Data

Example histogram of sampled fish lengths.

Length Distributions

Summary Statistics - Length Distribution by Fish Group and Region

Length Distribution Summary Statistics by Fish Group and Region
Region N Min Q1 Median Mean Q3 Max SD
Billfish
Berbera 2 48.0 71.0 94.0 94.0 117.0 140.0 65.1
Bosaso 50 1.9 160.0 175.5 171.9 190.2 235.0 38.2
Kismayo 4 190.0 190.0 192.5 200.5 203.0 227.0 17.8
Mogadishu 64 80.0 143.8 171.5 169.7 195.8 280.0 40.3
Jacks
Berbera 66 24.0 43.0 70.5 65.4 82.0 103.0 22.1
Bosaso 105 36.0 60.0 67.0 67.2 73.0 125.0 12.8
Kismayo 20 72.0 75.8 77.0 76.9 78.2 81.0 2.5
Mogadishu 98 39.0 54.2 66.0 66.0 76.8 104.0 15.3
Mackerel
Berbera 95 71.0 80.0 88.0 90.3 96.5 133.0 15.1
Bosaso 9 77.0 80.0 84.0 86.2 92.0 97.0 7.0
Kismayo 84 50.0 68.0 77.0 74.5 81.0 97.0 10.8
Mogadishu 28 6.9 64.0 75.0 74.2 86.0 104.0 19.9
Other
Berbera 332 4.6 45.8 65.5 66.8 88.0 160.0 28.2
Bosaso 141 9.0 70.0 86.0 85.8 97.0 165.0 22.8
Kismayo 220 38.0 54.0 62.0 65.9 78.0 117.0 16.1
Mogadishu 174 33.0 64.0 83.5 85.6 105.5 185.0 27.6
Rays and Skates
Bosaso 2 56.0 58.5 61.0 61.0 63.5 66.0 7.1
Kismayo 7 47.0 57.0 61.0 62.6 68.5 79.0 11.2
Mogadishu 38 50.0 67.2 100.0 116.7 136.5 348.0 65.9
Shark
Berbera 11 47.0 78.5 83.0 84.5 99.5 103.0 16.3
Bosaso 37 53.0 73.0 87.0 88.1 95.0 150.0 24.2
Kismayo 196 58.0 76.0 80.0 81.4 87.0 180.0 14.0
Mogadishu 101 34.0 84.0 96.0 128.6 148.0 346.0 67.6
Tuna
Berbera 568 3.1 53.0 59.0 62.7 74.0 140.0 14.2
Bosaso 573 6.0 59.0 67.0 70.5 78.0 183.0 20.2
Kismayo 60 50.0 58.0 61.5 68.1 78.0 114.0 15.6
Mogadishu 441 36.0 57.0 64.0 73.9 80.0 209.0 26.8

Summary Statistics - Length Distribution by Fish Group and years

Length Distribution Summary Statistics by Fish Group and year
Year N Min Q1 Median Mean Q3 Max SD
Billfish
2018 6 161.0 174.2 191.0 190.7 192.0 240.0 27.5
2019 25 89.0 134.0 173.0 161.9 195.0 274.0 44.5
2020 32 1.9 159.2 183.0 177.2 203.8 280.0 50.4
2021 57 48.0 157.0 173.0 168.1 185.0 230.0 32.3
Jacks
2019 72 39.0 53.8 61.0 62.1 72.0 84.0 12.3
2020 86 24.0 48.8 66.5 65.4 79.5 125.0 20.3
2021 131 36.0 63.0 70.0 70.8 79.5 106.0 13.7
Mackerel
2019 13 51.0 56.0 75.0 72.3 82.0 99.0 14.9
2020 118 6.9 74.0 83.0 83.9 92.0 133.0 17.5
2021 85 51.0 73.0 80.0 80.6 85.0 121.0 13.4
Other
2018 12 55.0 71.5 89.0 90.0 99.8 150.0 29.1
2019 101 33.0 66.0 85.0 87.1 104.0 167.0 26.0
2020 346 9.0 53.0 78.5 73.6 91.0 165.0 26.4
2021 408 4.6 53.0 64.0 69.4 85.0 185.0 24.9
Rays and Skates
2018 2 134.0 138.0 142.0 142.0 146.0 150.0 11.3
2019 19 50.0 63.5 81.0 85.1 92.5 185.0 33.3
2020 18 47.0 60.5 70.5 91.3 115.5 216.0 44.5
2021 8 60.0 112.8 185.0 181.5 225.8 348.0 99.4
Shark
2018 6 205.0 277.5 288.5 278.5 298.0 314.0 38.4
2019 57 53.0 83.0 95.0 112.1 114.0 300.0 53.6
2020 84 47.0 75.0 81.5 86.8 88.5 180.0 23.4
2021 198 34.0 76.2 81.5 89.8 89.0 346.0 34.1
Tuna
2018 54 43.0 59.2 65.0 69.4 76.0 104.0 13.3
2019 227 36.0 56.0 66.0 72.5 80.0 209.0 25.0
2020 707 3.1 55.0 63.0 66.2 76.0 160.0 16.5
2021 654 6.0 56.0 63.0 69.8 77.0 183.0 23.4

Weight Distributions

Length-Weight Relationships

4. Abundance Indices

  • A relative measure of stock size over time (not an absolute number).
  • Used to “tune” assessment models.
  • Fishery-dependent: Catch-Per-Unit-Effort (CPUE).
  • Fishery-independent: Scientific surveys (trawls, acoustic, visual).

Abundance Indices…

Yellowfin Tuna Catch Per Unit Effort (CPUE)

Upwelling in TANGA-PEMBA

Seasonal upwelling influenced by EACC and the monsoon winds. Key characteristics include:

  • Seasonality
  • Nutrient enrichment
  • Ecological impact
  • Economic importance

Environmental Variables

Fish populations are heavily influenced by their environment. Understanding these links is crucial for modern stock assessment.

5. Environmental Data

Environmental factors affect fish:

  • Distribution & Migration
  • Growth rates
  • Reproduction (spawning timing & success)
  • Mortality (survival rates)

Key Environmental Variables

These variables help explain changes in fish populations that catch and effort data alone cannot.

Commonly Used Variables:

  • Sea Surface Temperature (SST): Influences metabolic rates, growth, and species distribution.

  • Chlorophyll-a (Chl-a): A proxy for phytoplankton and primary productivity (i.e., food availability).

  • Salinity: Affects species tolerance and distribution, especially in coastal and estuarine areas.

Oceanographic Features:

  • Ocean Currents: Drive larval dispersal and create migration pathways (e.g., the Somali Current).

  • Upwelling: Brings nutrient-rich deep water to the surface, boosting productivity.

  • Climate Indices: Large-scale patterns like the Indian Ocean Dipole (IOD) or El Niño (ENSO) that impact regional conditions.

Seasonal Surface Ocean Circulation

Seasonal Wind Circulation

Seasonal Sea Surface Temperature

Data Integration

Sources & Integration

  • Data Sources: Primarily from satellite remote sensing (e.g., NASA, NOAA, Copernicus), oceanographic models, and research buoys.

  • Use in Assessments:

    • Explain variability in abundance indices (e.g., why CPUE is high in some years).
    • Improve recruitment predictions by linking larval survival to environmental conditions.
    • Define stock boundaries based on habitat suitability.
    • This leads to environmentally-explicit or ecosystem-based stock assessment.

Data Quality Considerations

The “GIGO” principle: Garbage In, Garbage Out.

  • Accuracy & Precision: Is the data correct and consistent?
  • Bias: Does the data systematically over/underestimate the truth?
  • Completeness: Are there gaps in the time series?
  • Standardization: Are data collected the same way over time?

Data Limitations in the Indian Ocean

Common challenges faced across the region that impact stock assessment.

Small-Scale Fisheries


🛶


Dispersed, artisanal fleets are difficult to monitor comprehensively.

Multi-Species Catches


🐟🐠


It is hard to separate catch data for individual species in mixed fisheries.

Limited Resources


💰🚫


Low financial and human capacity for consistent, long-term data collection.

Transboundary Stocks


🗺️🐟


Fish cross national borders, but data collection programs often do not.

Challenges in Somali Fisheries

Long & Dispersed Coastline


🗺️


Many remote landing sites make comprehensive data collection difficult.

Historical Data Gaps


🗓️➡️❓


Inconsistent records from past decades complicate trend analysis.

Logistical & Security Hurdles


🚧


Accessing some areas for monitoring can be challenging and unsafe.

Opportunities in Somali Fisheries

Visualizing the key opportunities for enhancing data collection.

Community-Based Data


👥


Engaging local fishers and communities to gather valuable, on-the-ground data.

Modern Technology


📱


Using mobile apps and vessel tracking to improve data accuracy and coverage.

Regional Collaboration


🤝


Partnering with neighboring countries and organizations to share knowledge.

Working with Incomplete Data

We don’t need perfect data to start! Data-limited methods are designed for these situations.

Strategies for Data-Limited Situations

When data is scarce, we adapt our methods to focus on what we can learn.

Use Proxies


📏➡️🗓️


Use easily collected data (like length) to infer harder-to-get data (like age).

Borrow Information


📚


Apply known biological parameters from similar, well-studied species or regions.


📈


Analyze the direction of change (e.g., in CPUE or average size) over time.

Employ Simpler Models


🧰


Use robust methods like Catch-MSY or length-based indicators that require less data.

Summary

  • Good data is the cornerstone of reliable stock assessment.
  • We need catch, effort, biological, and abundance index data.
  • Data quality is as important as data quantity.
  • Even with limitations, robust science is possible using data-limited approaches.

TOOLS FOR INNOVATIONS

Coding with Programming languages (Python & R)

Exercise

Somali Landing Site Data

Using the provided lw dataset from Somali landing sites:

  1. Review the Data: Explore the length, weight, and catch data available for your assigned region. What are the main species? What are the temporal and spatial trends?

  2. Identify Data Gaps: What information is missing? Are there gaps in time? Are certain species or gear types underrepresented?

  3. Assess Data Quality: Look for potential issues like outliers, missing values, or inconsistent entries. How might these affect an assessment?

  4. Propose Improvements: Based on your review, suggest 2-3 practical steps to improve data collection for stock assessment in your region.